computer security artificial intelligence internet security software verification quality assurance website development computer network security web development web design hazard analysis software consulting quality knowledge representation software testing webpage development proof planning knowledge management university of edinburgh scotland project management knowledge